home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software of the Month Club 2000 October
/
Software of the Month - Ultimate Collection Shareware 277.iso
/
pc
/
PROGRAMS
/
UTILITY
/
WINLINUX
/
DATA1.CAB
/
programs_-_include
/
LINUX
/
NFSD
/
CACHE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1999-09-17
|
2KB
|
80 lines
/*
* include/linux/nfsd/cache.h
*
* Request reply cache. This was heavily inspired by the
* implementation in 4.3BSD/4.4BSD.
*
* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
*/
#ifndef NFSCACHE_H
#define NFSCACHE_H
#ifdef __KERNEL__
#include <linux/sched.h>
/*
* Representation of a reply cache entry. The first two members *must*
* be hash_next and hash_prev.
*/
struct svc_cacherep {
struct svc_cacherep * c_hash_next;
struct svc_cacherep * c_hash_prev;
struct svc_cacherep * c_lru_next;
struct svc_cacherep * c_lru_prev;
unsigned char c_state, /* unused, inprog, done */
c_type, /* status, buffer */
c_secure : 1; /* req came from port < 1024 */
struct in_addr c_client;
u32 c_xid;
u32 c_proc;
unsigned long c_timestamp;
union {
struct svc_buf u_buffer;
u32 u_status;
} c_u;
};
#define c_replbuf c_u.u_buffer
#define c_replstat c_u.u_status
/* cache entry states */
enum {
RC_UNUSED,
RC_INPROG,
RC_DONE
};
/* return values */
enum {
RC_DROPIT,
RC_REPLY,
RC_DOIT,
RC_INTR
};
/*
* Cache types.
* We may want to add more types one day, e.g. for diropres and
* attrstat replies. Using cache entries with fixed length instead
* of buffer pointers may be more efficient.
*/
enum {
RC_NOCACHE,
RC_REPLSTAT,
RC_REPLBUFF,
};
/*
* If requests are retransmitted within this interval, they're dropped.
*/
#define RC_DELAY (HZ/5)
void nfsd_cache_init(void);
void nfsd_cache_shutdown(void);
int nfsd_cache_lookup(struct svc_rqst *, int);
void nfsd_cache_update(struct svc_rqst *, int, u32 *);
#endif /* __KERNEL__ */
#endif /* NFSCACHE_H */